/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.mindbox.mueblesalpes.presentacion.reportes;

import com.mindbox.mueblesalpes.negocio.entity.Cliente;
import com.mindbox.mueblesalpes.negocio.geo.Ciudad;
import com.mindbox.mueblesalpes.presentacion.utils.Mensajes;
import com.mindbox.mueblesalpes.presentacion.utils.ReglasNavegacion;
import com.mindbox.mueblesalpes.presentacion.utils.SelectUtil;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpServletRequest;

/**
 *
 * @author Jaimoto
 */

public class ReportesBean {


    private boolean top;
    private boolean ventas;
    private boolean compras;
    private boolean mostrarCliente;
    private HtmlOutputText text;
    private String reporte;
    private List<SelectItem> opciones;
    private List<SelectItem> clientes;
    private List<SelectItem> ciudades;
    private String idCiudad;
    private String idCliente;
    private Date fechaIni;
    private Date fechaFin;
    private Ciudad ciudad;
    private Cliente cliente;

    /** Creates a new instance of ReportesBean */
    public ReportesBean() {
        ResourceBundle bundle = ResourceBundle.getBundle("ApplicationMessages");
        opciones = new ArrayList();
        opciones.add(new SelectItem("0","Seleccionar Reporte"));
        opciones.add(new SelectItem("1",bundle.getString("reporte.top.title")));
        opciones.add(new SelectItem("2",bundle.getString("reporte.ventas.title")));
        opciones.add(new SelectItem("3",bundle.getString("reporte.compras.title")));
        cliente = new Cliente();
        ciudad = new Ciudad();
        fechaFin = new Date();
        fechaIni = new Date();
        ciudades = SelectUtil.listCiudades();
        clientes = SelectUtil.listClientes();
        top = false;
        ventas = false;
        compras = false;
        mostrarCliente = true;
        text = new HtmlOutputText();
    }

    public String cambiarReporte(){
        if(reporte.equals("1")){
            top = true;
            ventas = false;
            compras = false;
            mostrarCliente = false;
        }else if(reporte.equals("2")){
            ventas = true;
            compras = false;
            top = false;
            mostrarCliente = false;
        }else if(reporte.equals("3")){
            compras = true;
            ventas = false;
            top = false;
            mostrarCliente = true;
        }
        return null;
    }

    public String seleccionarReporte(){
        HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        request.setAttribute("fechaIni", fechaIni);
        request.setAttribute("fechaFin", fechaFin);


        if(reporte.equals("1")){
            request.setAttribute("ciudad", idCiudad);
            return ReglasNavegacion.rep_top.toString();
        }else if(reporte.equals("2")){
            request.setAttribute("ciudad", idCiudad);
            System.out.println(ReglasNavegacion.rep_ventas.toString());
            return ReglasNavegacion.rep_ventas.toString();
        }else if(reporte.equals("3")){
            request.setAttribute("cliente", idCliente);
            System.out.println("idCliente "+idCliente);
            System.out.println("idCiudad "+idCiudad);
            System.out.println(ReglasNavegacion.rep_compras.toString());
            return ReglasNavegacion.rep_compras.toString();
        }
        Mensajes.asignarMensajeError("reporte.error.seleccionar");
        return null;
    }

    

    public boolean isCompras() {
        return compras;
    }

    public void setCompras(boolean compras) {
        this.compras = compras;
    }

    public boolean isTop() {
        return top;
    }

    public void setTop(boolean top) {
        this.top = top;
    }

    public boolean isVentas() {
        return ventas;
    }

    public void setVentas(boolean ventas) {
        this.ventas = ventas;
    }

    public String getReporte() {
        return reporte;
    }

    public void setReporte(String reporte) {
        this.reporte = reporte;
    }

    public List<SelectItem> getOpciones() {
        return opciones;
    }

    public void setOpciones(List<SelectItem> opciones) {
        this.opciones = opciones;
    }

    public HtmlOutputText getText() {
        return text;
    }

    public void setText(HtmlOutputText text) {
        this.text = text;
    }

    public Ciudad getCiudad() {
        return ciudad;
    }

    public void setCiudad(Ciudad ciudad) {
        this.ciudad = ciudad;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public Date getFechaFin() {
        return fechaFin;
    }

    public void setFechaFin(Date fechaFin) {
        this.fechaFin = fechaFin;
    }

    public Date getFechaIni() {
        return fechaIni;
    }

    public void setFechaIni(Date fechaIni) {
        this.fechaIni = fechaIni;
    }

    public List<SelectItem> getCiudades() {
        return ciudades;
    }

    public void setCiudades(List<SelectItem> ciudades) {
        this.ciudades = ciudades;
    }

    public List<SelectItem> getClientes() {
        return clientes;
    }

    public void setClientes(List<SelectItem> clientes) {
        this.clientes = clientes;
    }

    public String getIdCiudad() {
        return idCiudad;
    }

    public void setIdCiudad(String idCiudad) {
        this.idCiudad = idCiudad;
    }

    public String getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(String idCliente) {
        System.out.println("seteio cliente "+idCliente);
        this.idCliente = idCliente;
    }

    public boolean isMostrarCliente() {
        return mostrarCliente;
    }

    public void setMostrarCliente(boolean mostrarCliente) {
        this.mostrarCliente = mostrarCliente;
    }

    

}
